# -*- coding: UTF-8 -*-
"""
@Project ：lufei-learning-city 
@File    ：return和yield.py
@IDE     ：PyCharm 
@Author  ：于金龙@阿龙的代码在报错
@Date    ：2025/1/24 下午3:55 
"""


def func():
    for i in range(5):
        print("我是一个循环体")  # 当循环执行return的时候直接停止对函数的调用，不会只想第二循环
        return i * i  # 返回的结果是一个 0


# result = func()  # 我是一个循环体
# print(result)  # 0


#
def CreateGenerator():
    for i in range(5):
        # print("我是一个循环体")
        resulty = yield i * i  # 这个时候函数并没有停止调用只是暂停调用了，再次调用的时候会在上次循环的基础上继续执行 这个时候返回的就是一个生成器对象 generator object
        # None 因为每次运行到yield的时候都会餐厅然后下一次调用函数的时候都会从yield语句后面开始,
        # 但是又因为上面的并没有给resulty这个变量赋值索引他输出的值为None
        print(resulty)


result1 = CreateGenerator()  # 我是一个循环体  \n 0

# 调用generator object中的数据
print(next(result1))  # 0
print(next(result1))  # 1
print(next(result1))  # 4
